linux 标准盘扩容

操作系统:centos7.9

磁盘分区:mbr/gpt

文件系统:ext4/xfs

注:ext系列需卸载硬盘,再扩容;xfs可在线扩容,无需卸载硬盘

EXT流程:

1.卸载硬盘

2.扩容

3.挂载、验证

第一步,卸载

语法:umount 《块路径或挂载路径》

注:可能面临硬盘被使用的情况,无法卸载的情况

方案1:可手工PS进程

1
2
3
4
5
6
7
8
#第一步,进入其它目录,防止当前终端在卸载目录中
cd 

#第二步,ps挂载路径
#查看所有UID的进程
ps -ef  | grep 挂载路径
#查看所有用户并显示终端
ps -aux | grep 故障路径

方案2:强制卸载,

语法:umount -l 《块路径或挂载路径》

第二步,扩容

现有硬盘扩容:

parted可对现在磁盘扩展分区,仅可扩容至连续的可用空间,不可跨分区。(与win相同)

注:操作前,需先卸载分区,否则无法扩容!!!

范例:

原7G硬盘,现硬盘扩容至10G,使用parted将剩余空间全部扩容至原有分区

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#当前当前分区结构(sdb共10G,将sdb1原7G将剩余3G空间扩容至sdb1)
[root@localhost ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0   99G  0 disk 
├─sda1          8:1    0    1G  0 part /boot
└─sda2          8:2    0   98G  0 part 
  ├─rhel-root 253:0    0   94G  0 lvm  /
  └─rhel-swap 253:1    0    4G  0 lvm  [SWAP]
sdb             8:16   0   10G  0 disk 
└─sdb1          8:17   0    7G  0 part 
sr0            11:0    1 1024M  0 rom  

#操作对象parted
[root@localhost ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

#打印分区信息(1个分区及容量起始位置)
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  标志
 1      1049kB  7516MB  7515MB  primary  ext4

#扩容对象分区 "1"
(parted) resizepart 1                                                     

#end结束位置可以写容量也可以写百分比(7516MB是原来的位置)
结束点  [7516MB]? 100%                                                  

#打印更新后的
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  标志
 1      1049kB  10.7GB  10.7GB  primary  ext4

#退出
(parted) quit                                                             
信息: You may need to update /etc/fstab.

#更新分区后检测文件系统可选(当分区扩容异常时需要做
#(ext4使用 e2fsck -f /dev/sdb1)
[root@localhost ~]# e2fsck -f /dev/sdb1
e2fsck 1.42.9 (28-Dec-2013)
第1步: 检查inode,,和大小
第2步: 检查目录结构
第3步: 检查目录连接性
第4步: Checking reference counts
第5步: 检查簇概要信息
/dev/sdb1: 12/458752 files (0.0% non-contiguous), 69632/1834752 blocks

#刷新容量(ext4使用resize2fs /dev/sdb1)
[root@localhost ~]# resize2fs /dev/sdb1
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/sdb1 to 2621184 (4k) blocks.
The filesystem on /dev/sdb1 is now 2621184 blocks long.

#查询更新结果
[root@localhost ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0   99G  0 disk 
├─sda1          8:1    0    1G  0 part /boot
└─sda2          8:2    0   98G  0 part 
  ├─rhel-root 253:0    0   94G  0 lvm  /
  └─rhel-swap 253:1    0    4G  0 lvm  [SWAP]
sdb             8:16   0   10G  0 disk 
└─sdb1          8:17   0   10G  0 part 
sr0            11:0    1 1024M  0 rom  

第三步,重新挂载验证

挂载验证:mount /dev/sdb1

lsblk

df -h


XFS流程:

xfs的优势就是在线扩容,但依赖growpart工具进行扩容,需额外安装。

当然,如果不想安装growpart,就需要卸载硬盘使用parted进行扩容

注:growpart 同时支持 MBR 和 GPT 两种分区表,唯一限制是:只能扩展该磁盘上最后一段连续的空闲空间(最后一个分区)

1.安装growpart

2.使用growpart扩容最后一个分区

3.刷新分区

4.重新挂载验证

第一步,安装growpart

1
yum install -y cloud-utils-growpart

第二步,使用growpart扩容最后一个分区

语法:LANG=en_US.UTF-8 growpart《块路径》 最后分区编号

1
2
#扩容/dev/sdb下第1个分区(因当前只有1个分区,也就是最后1个分区)
LANG=en_US.UTF-8 growpart /dev/sdb 1

第三步,刷新分区

1
2
3
4
5
#ext4使用resize2fs 
resize2fs /dev/sdb1

#xfs使用xfs_growfs
xfs_growfs /dev/sdb1

第四步,重新挂载验证

挂载验证:mount /dev/sdb1

lsblk

df -h